/**
 * Spring如何获取Bean:通过xml配置文件
 *     bean配置在xml里面，spring提供多种方式读取配置文件得到ApplicationContext。
 *     第一种方式：FileSystemXmlApplicationContext
 *     第二种方式：WebApplicationContextUtil
 *     
 * @author MIAO
 * Created on 2011-10-12
 * For more information, please visit:ismiao.com
 */
package com.ismiao.knowledge;

public class SpringHowToGetBean {
/**
 * bean配置在xml里面，spring提供多种方式读取配置文件得到ApplicationContext。
 * 
 * 第一种方式：FileSystemXmlApplicationContext
 *    通过程序在初始化的时候，导入Bean配置文件，然后得到Bean实例:
 *       ApplicationContext ac = new FileSystemXmlApplicationContext("applicationContext.xml")
 *       ac.getBean("beanName");
 * 
 * 第二种方式：WebApplicationContextUtil
 *    在B/S系统中,通常在web.xml初始化bean的配置文件，然后由WebAppliCationContextUtil得到ApplicationContext。
 *    例如：
 *    ApplicationContext ctx = WebApplicationContextUtils.getRequiredWebApplicationContext(ServletContext sc);
 *    ApplicationContext ctx = WebApplicationContextUtils.getWebApplicationContext(ServletContext sc);
 *    其中 servletContext sc可具体换成servlet.getServletContext()或者this.getServletContext()或者request.getSession().getServletContext();
 *    另外，由于spring是注入的对象放在ServletContext中的，所以可以直接在ServletContext取出WebApplicationContext 对象：
 *    WebApplicationContext webApplicationContext = (WebApplicationContext) servletContext.getAttribute(WebApplicationContext.ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE);
 * （第二种方式猫sir还是不很熟悉）
 * 
 * classpathxmlApplicationcontext和FileSystemXmlApplicationContext的用法
 * 对于ClassPathXmlApplicationContext（）， classpath: 前缀是不需要的，   默认就是指项目的classpath路径下面；
 * 如果要使用绝对路径，需要加上 file: 前缀表示这是绝对路径；
 * 对于FileSystemXmlApplicationContext（）， 默认表示的是两种：
 * 1，没有盘符的是 项目工作路径， 即项目的根目录；
 * 2，有盘符表示的是   文件绝对路径。
 * 如果要使用classpath路径， 需要前缀   classpath:
 * 另：在eclipse 中，classpath 就是指bin目录，编译后的src会把输出文件放到bin下。
 * log4j.properties 要放在bin目录下。
 * 一个简单的log4j.properties的例子如下：

               log4j.rootLogger=DEBUG,stdout
               log4j.appender.stdout=org.apache.log4j.ConsoleAppender
              log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
              log4j.appender.stdout.layout.ConversionPattern=%d %5p (%F:%L) - %m%n
 */
}
